package com.client.service.data;

import java.util.List;

import com.google.gwt.user.client.rpc.RemoteService;
import com.google.gwt.user.client.rpc.RemoteServiceRelativePath;
import com.shared.model.Apporteur;
import com.shared.model.Assure;
import com.shared.model.Interlocuteur;
import com.shared.model.Produit;
import com.shared.model.Proposition;

@RemoteServiceRelativePath("assure")
public interface AssureDataService extends RemoteService{
	/**	
	* @gwt.typeArgs <com.shared.model.Assure>
	*/
	List getList() throws IllegalArgumentException;
	/**	
	* @gwt.typeArgs <com.shared.model.Proposition>
	*/
	List getListProposition(Assure assure) throws IllegalArgumentException;
	Assure save(Assure assure) throws IllegalArgumentException;
	Assure update(Assure assure) throws IllegalArgumentException;
	Assure delete(Assure assure) throws IllegalArgumentException;
	Assure getAssure(long key) throws IllegalArgumentException;
	Apporteur getApporteur(Assure assure) throws IllegalArgumentException;
	Apporteur getSousApporteur(Assure assure) throws IllegalArgumentException;
	Interlocuteur getGestionnaire(Assure assure) throws IllegalArgumentException;
	String setApporteur(Assure assure,Apporteur apporteur) throws IllegalArgumentException;
	String setSousApporteur(Assure assure,Apporteur apporteur) throws IllegalArgumentException;
	String setGestionnaire(Assure assure,Interlocuteur interlocuteur) throws IllegalArgumentException;
	String removeApporteur(Assure assure,Apporteur apporteur) throws IllegalArgumentException;
	String removeApporteurSousApporteur(Assure assure,Apporteur apporteur) throws IllegalArgumentException;
	String removeApporteurGestionnaire(Assure assure,Interlocuteur interlocuteur) throws IllegalArgumentException;	
	String addProposition(Assure assure,Proposition proposition) throws IllegalArgumentException;	
	String removeProposition(Assure assure,Proposition proposition) throws IllegalArgumentException;
	Produit getProduitPropose(Assure assure,Proposition proposition);
	String acceptProposition(Assure assure,Proposition proposition);
}
